package com.irdstudio.efp.report.service.facade;

import com.irdstudio.efp.report.service.vo.ZxbsLoanRepayPlanVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Service Interface:
 *
 * @author gcb
 * @date 2020-07-28
 */
public interface ZxbsLoanRepayPlanService {
    /**
     * 新增数据
     *
     * @param zxbsLoanRepayPlanVO
     * @return
     */
    int insert(ZxbsLoanRepayPlanVO zxbsLoanRepayPlanVO);

    /**
     * 根据主键删除信息
     *
     * @param zxbsLoanRepayPlanVO
     * @return
     */
    int deleteByPk(ZxbsLoanRepayPlanVO zxbsLoanRepayPlanVO);

    /**
     * 根据主键更新信息
     *
     * @param zxbsLoanRepayPlanVO
     * @return
     */
    int updateByPk(ZxbsLoanRepayPlanVO zxbsLoanRepayPlanVO);

    /**
     * 根据主键查询详情
     *
     * @param zxbsLoanRepayPlanVO
     * @return
     */
    ZxbsLoanRepayPlanVO queryByPk(ZxbsLoanRepayPlanVO zxbsLoanRepayPlanVO);

    int insertOrUpdate(List<ZxbsLoanRepayPlanVO> list) throws Exception;

    List<ZxbsLoanRepayPlanVO> queryMinOverdueStmtDates(List<String> list) throws Exception;

    Integer queryCurrentTerm(String date, String billNo);

    List<ZxbsLoanRepayPlanVO> queryRepayPlansByRefNbr(List<String> list) throws Exception;

    List<ZxbsLoanRepayPlanVO> queryRepayPlanByRefNbrAndStatus(ZxbsLoanRepayPlanVO loanRepayPlanVO) throws Exception;
}